package com.bcgtgjyb.huanwen.customview.mylibrary.tool;

import ohos.agp.components.AttrHelper;
import ohos.agp.window.service.DisplayManager;
import ohos.app.Context;

public class ScreenUtil {
    private static final int ABBR = 129;
    private static final int SV = 160;
    private static int screenHeight = 0;
    private static int screenWidth = 0;
    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     *
     * @param context 内容
     * @param dpValue dp值
     * @return 0
     */

    public static int dip2px(Context context, float dpValue) {
        int ii = AttrHelper.vp2px(dpValue, AttrHelper.getDensity(context));
        return ii;
    }

    /**
     * 将px值转换为sp值，保证文字大小不变
     *
     * @param context 内容
     * @param pxValue （DisplayMetrics类中属性scaledDensity）
     * @return 0
     */

    public static int px2sp(Context context, float pxValue) {
        int round = Math.round(pxValue * AttrHelper.getDensity(context) / SV);
        return round;
    }

    /**
     * 将sp值转换为px值，保证文字大小不变
     *
     * @param context
     * @param spValue （DisplayMetrics类中属性scaledDensity）
     * @return 0
     */

    public static int sp2px(Context context, float spValue) {
        return AttrHelper.fp2px(spValue, AttrHelper.getDensity(context));
    }
    /**
     * getScreenWidth 方法
     *
     * @param context 上下文
     * @return 0
     */

    public static int getScreenWidth(Context context) {
        if (screenWidth == 0) {
            screenWidth = DisplayManager.getInstance().getDefaultDisplay(context).get().getAttributes().width;
        }
        return screenWidth;
    }
    /**
     * getScreenHeight 方法
     *
     * @param context 内容
     * @return 0
     */

    public static int getScreenHeight(Context context) {
        if (screenHeight == 0) {
            screenHeight = DisplayManager.getInstance().getDefaultDisplay(context).get().getAttributes().height;
        }
        return screenHeight;
    }

    /**
     * 获取状态栏高度,先临时写死，暂时没有办法获取到
     *
     * @param context 上下文
     * @return 0
     */

    public static int getStatusBarHeight(Context context) {
        return ABBR;
    }
}
